The IoT is a network of devices or “things” embedded with electronics, software, and sensors which enables these objects to collect and exchange data between themselves and between other computing devices. Example “things” include connected home appliances, sensors in automobiles, biochips, and the like. These devices communicate with other devices, servers, and computers across one or more networks and may even form and participate in mesh networks. In some examples, IoT devices may be computing devices such as Wireless Local Area Network (WLAN) routers, range extenders, or the like.
An IoT device may be defined as a computing device with network connectivity and one or more network-accessible functions. These functions include reading sensor values, performing actions (such as actuation of a motor), providing status, and the like. Example IoT devices include connected thermostats, appliances, vehicles, and the like.
Many IoT devices also allow configuration remotely over a network. In order to connect to a network, the IoT device must be initially configured with network parameters of the end user's network. For example, the devices may need a Service Set Identifier (SSID), security information (e.g., security type such as Wi-Fi Protected Access 2 (WPA-2)), password, X. 509 certificates, and other credentials to connect to a Wireless Local Area Network (WLAN). Because the IoT device needs to at least be initially configured with these network parameters, many IoT devices include a user interface, such as a display and an input mechanism to enable such configuration. The additional hardware and software to implement a display and input mechanism increases the cost of these IoT devices. Furthermore, any configuration needs to be secured against unauthorized individuals. Some device manufacturers have responded with limited input capabilities and displays. For example, on-screen keyboards which require the user to hunt and click or press using a mouse or finger. These solutions are a hassle for users as they are slow and difficult to use.
Further, while so-called “headless” IoT devices that feature limited or no direct user input and output mechanisms (except a network connection) are desirable due to their low cost, these devices have a chicken and egg problem—without a user interface and with only a network configuration it is difficult to configure the device to operate on the network and thus be configured via the network.